]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
calendar-server: Fix double-free detection abort
authorGustavo Noronha Silva <gustavo@noronha.dev.br>
Tue, 18 May 2021 18:28:43 +0000 (15:28 -0300)
committerGustavo Noronha Silva <gustavo@noronha.dev.br>
Tue, 18 May 2021 23:06:50 +0000 (23:06 +0000)
app_notify_events_added uses an intermediate builder to construct an
array that is then added to the main variant using g_variant_builder_add
which should clear the intermediate, but doesn't due to the way it is
passed: by value, rather than as a pointer.

This was debugged with the help of Eduardo Habkost, who believes it
works on x86 due to big structs being passed as pointers.

Fixed: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3440
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1848>

src/calendar-server/gnome-shell-calendar-server.c

index 61ac92785e29b30f8276f748e07a6ef3f2152e3c..4c5a64542b2dad86a7346ecd51346f571255b71a 100644 (file)
@@ -381,8 +381,7 @@ app_notify_events_added (App *app)
                                  (gboolean) appt->is_all_day,
                                  (gint64) start_time,
                                  (gint64) end_time,
-                                 extras_builder);
-          g_variant_builder_clear (&extras_builder);
+                                 &extras_builder);
         }
     }